package com.sz.admin.dept.service;

import com.mybatisflex.core.service.IService;
import com.sz.admin.dept.pojo.dto.CompanyCreateDTO;
import com.sz.admin.dept.pojo.dto.CompanyListDTO;
import com.sz.admin.dept.pojo.dto.CompanyUpdateDTO;
import com.sz.admin.dept.pojo.dto.FleetCreateDTO;
import com.sz.admin.dept.pojo.dto.FleetListDTO;
import com.sz.admin.dept.pojo.dto.FleetUpdateDTO;
import com.sz.admin.dept.pojo.po.Dept;
import com.sz.admin.dept.pojo.vo.CompanyVO;
import com.sz.admin.dept.pojo.vo.FleetVO;
import com.sz.core.common.entity.PageResult;
import com.sz.core.common.entity.SelectIdsDTO;

import java.util.List;

/**
 * <p>
 * 部门表 Service
 * </p>
 *
 * @author sz-admin
 * @since 2025-10-20
 */
public interface DeptService extends IService<Dept> {

    // Company methods
    void createCompany(CompanyCreateDTO dto);

    void updateCompany(CompanyUpdateDTO dto);

    PageResult<CompanyVO> pageCompanies(CompanyListDTO dto);

    List<CompanyVO> listCompanies(CompanyListDTO dto);

    CompanyVO detailCompany(Object id);

    void removeCompanies(SelectIdsDTO dto);

    // Fleet methods
    void createFleet(FleetCreateDTO dto);

    void updateFleet(FleetUpdateDTO dto);

    PageResult<FleetVO> pageFleets(FleetListDTO dto);

    List<FleetVO> listFleets(FleetListDTO dto);

    FleetVO detailFleet(Object id);

    void removeFleets(SelectIdsDTO dto);
}